package org.example.webservice.feign;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

/**
 * 文件服务Feign客户端
 */
@FeignClient(name = "file-service")
public interface FileServiceClient {

    /**
     * 上传文件
     * @param file 文件
     * @return 上传结果
     */
    @PostMapping(value = "/api/files/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    String uploadFile(@RequestPart("file") MultipartFile file);

    /**
     * 获取文件列表
     * @return 文件列表
     */
    @GetMapping("/api/files/list")
    String getFileList();

    /**
     * 获取文件信息
     * @param fileId 文件ID
     * @return 文件信息
     */
    @GetMapping("/api/files/{fileId}")
    String getFileInfo(@PathVariable("fileId") Long fileId);

    /**
     * 清空所有文件
     * @return 清空结果
     */
    @DeleteMapping("/api/files/clear")
    String clearAllFiles();
}